package vista;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Vector;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.WindowConstants;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;

import modelo.FacturaDTO;
import modelo.itemFacturaDTO;

public class vListarVenta extends JFrame{

	private static final long serialVersionUID = 1L;
	private JLabel lblFecha;
	private JLabel lblNumeroFactura;
	private JScrollPane barra;
	private JTable tabla;
	private FacturaDTO facDTO;
	private JLabel lblTotal;
	private JTextField txtTotal;
	private JPanel panel;
	private JButton btnAceptar;
	
	public vListarVenta(FacturaDTO fDTO) {
		super();
		facDTO = fDTO;
		cargarVentana();
	}

	private void cargarVentana() {
		
		setSize(500,600);
		panel=new JPanel();
		setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
		tabla = new JTable(new DefaultTableModel(new Object[] {
				"Descripcion", "Cantidad","Precio U.","Precio Item"}, 0));
		cargarDatos();
		tabla.setBounds(20, 60, 460, 400);
		tabla.setEnabled(false);
		tabla.getColumnModel().getColumn(0).setPreferredWidth(200);
		DefaultTableCellRenderer rightRenderer = new DefaultTableCellRenderer();
		rightRenderer.setHorizontalAlignment(DefaultTableCellRenderer.RIGHT);
		DefaultTableCellRenderer leftRenderer = new DefaultTableCellRenderer();
		leftRenderer.setHorizontalAlignment(DefaultTableCellRenderer.LEFT);
		tabla.getColumnModel().getColumn(1).setCellRenderer(leftRenderer);
		tabla.getColumnModel().getColumn(1).setPreferredWidth(50);
		tabla.getColumnModel().getColumn(2).setCellRenderer(leftRenderer);
		tabla.getColumnModel().getColumn(2).setPreferredWidth(50);
		tabla.getColumnModel().getColumn(3).setCellRenderer(leftRenderer);
		tabla.getColumnModel().getColumn(3).setPreferredWidth(50);
		barra = new JScrollPane(tabla);
		barra.setBounds(20, 60, 460, 400);
		lblFecha = new JLabel("Fecha");
		lblFecha.setBounds(300, 20, 200, 25);
		Date date = new Date();
		SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
		lblFecha.setText("Fecha: " + sdf.format(date));
		lblNumeroFactura=new JLabel();
		lblNumeroFactura.setBounds(20, 20, 150, 25);
		lblNumeroFactura.setText("Factura # "+String.valueOf(facDTO.getIdFactura()));
		lblTotal=new JLabel("Total ");
		lblTotal.setBounds(300, 460, 100, 25);
		panel.add(lblTotal);
		txtTotal=new JTextField();
		txtTotal.setText(String.valueOf(calcularTotal()));
		txtTotal.setBounds(380, 460, 70, 25);
		txtTotal.setEnabled(false);
		btnAceptar=new JButton("Aceptar");
		btnAceptar.setBounds(200, 530, 100, 25);
		panel.add(btnAceptar);
		panel.setBounds(getBounds());
		panel.add(barra);
		panel.add(lblFecha);
		panel.add(lblNumeroFactura);
		panel.add(txtTotal);
		setContentPane(panel);
		panel.setLayout(null);
		setLocationRelativeTo(null);
		setTitle("Factura");
		setResizable(false);
		
		btnAceptar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent evt) {
				setVisible(false);
			}
		});
		
	}
	
	private float calcularTotal() {
		Vector<itemFacturaDTO> iDTO = facDTO.getItems();
		float total =0;
		for (int i = 0; i < iDTO.size(); i++) {
			total = total + iDTO.elementAt(i).getCantidad()*iDTO.elementAt(i).getPrecioUnitario();
		}
		
		return total;
	}

	private void cargarDatos() {
		DefaultTableModel modeloVista = (DefaultTableModel) tabla.getModel();
		Vector<itemFacturaDTO> iDTO = facDTO.getItems();
		for (int i = 0; i < iDTO.size(); i++) {
			modeloVista.addRow(new Object[] {
						iDTO.elementAt(i).getDescripcion(),
				    String.valueOf(iDTO.elementAt(i).getCantidad()),
				    String.valueOf(iDTO.elementAt(i).getPrecioUnitario()),
				    String.valueOf(iDTO.elementAt(i).getCantidad()*iDTO.elementAt(i).getPrecioUnitario())
					 });
		}
	}
}
